In-context control of feed privacy settings

ABSTRACT

A feed privacy module receives an indication of the occurrence of an activity in a content sharing platform and creates a private feed item of a first feed item type corresponding to the occurrence of the activity. The feed privacy module requests input pertaining to a privacy setting selection for feed items of the first feed item type and receives the privacy setting selection. If the input pertaining to the privacy setting selection indicates a public setting for feed items of the first feed item type, the feed privacy module converts the private feed item to a public feed item.

TECHNICAL FIELD

This disclosure relates to the field of media viewing services and, inparticular, to using in-context control of feed privacy settings.

BACKGROUND

On the Internet, content sharing platforms or other applications allowusers to upload, view, and share digital content such as media items.Such media items may include audio clips, movie clips, TV clips, andmusic videos, as well as amateur content such as video blogging, shortoriginal videos, pictures, photos, other multimedia content, etc. Usersmay use computing devices (such as smart phones, cellular phones, laptopcomputers, desktop computers, netbooks, tablet computers) to use, play,and/or consume the media items (e.g., watch digital videos, listen todigital music).

The content sharing platforms can include one or more channels and theone or more channels can be viewable over the Internet. A channel is amechanism for providing certain media items and/or for providing accessto media items to subscribers. Media items for the channel can beselected by a user, uploaded by a user, selected by a content provider,or selected by a broadcaster. Users can subscribe to one or morechannels, and upon subscribing, the user can view his or hersubscriptions from the homepage of the content hosting site or from auser interface. In some cases activities performed by a user or channelowner are displayed on the activity feeds of their subscribers. In somecases, the content sharing platform allows the user or channel owner tocontrol what activities are displayed on the activity feeds of theirsubscribers. For example, as part of a log-in or sign-up process theuser or channel owner may set one or more privacy settings for variousactivities. This manual process, however, can be time-consuming and canresult in some portion of the users failing to complete the log-in orsign-up process out of frustration.

SUMMARY

The following is a simplified summary of the disclosure in order toprovide a basic understanding of some aspects of the disclosure. Thissummary is not an extensive overview of the disclosure. It is intendedto neither identify key or critical elements of the disclosure, nordelineate any scope of the particular implementations of the disclosureor any scope of the claims. Its sole purpose is to present some conceptsof the disclosure in a simplified form as a prelude to the more detaileddescription that is presented later.

In one implementation, a feed privacy module receives an indication ofthe occurrence of an activity in a content sharing platform and createsa private feed item of a first feed item type corresponding to theoccurrence of the activity. The activity may include at least one ofliking an object, subscribing to a content channel, publishing anobject, or adding an object to a playlist. The private feed item may notbe shared with other users of the content sharing platform. The feedprivacy module may request input pertaining to a privacy settingselection for feed items of the first feed item type and receives theprivacy setting selection. If the input pertaining to the privacysetting selection indicates a public setting for feed items of the firstfeed item type, the feed privacy module converts the private feed itemto a public feed item. Public feed items may be shared with other usersof the content sharing platform. If the input pertaining to the privacysetting selection indicates a private setting for feed items of thefirst feed item type, the feed privacy module maintains the private feeditem as private.

In one implementation, the feed privacy module may also determinewhether the privacy setting selection for feed items of the first feeditem type has been previously received. If the privacy setting selectionfor feed items of the first feed item type has been previous received,and the input pertaining to the privacy setting selection indicates aprivate setting for feed items of the first feed item type, the feedprivacy module may determine whether a threshold period of time haspassed since the privacy setting selection was received. If thethreshold period of time has passed since the privacy setting selectionwas received, the feed privacy module may request an update to theprivacy setting selection for the feed items of the first feed itemtype.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings.

FIG. 1 is a block diagram illustrating an example graphical userinterface (GUI) in accordance with one implementation of the presentdisclosure.

FIG. 2 is a block diagram illustrating an exemplary network architecturein which implementations of the present disclosure may be implemented.

FIG. 3 is a block diagram illustrating a feed privacy module forin-context control of feed privacy settings, according to animplementation.

FIG. 4 is a flow diagram illustrating a method for in-context feedprivacy control, according to some implementations.

FIG. 5 is a flow diagram illustrating a method for in-context feedprivacy control, according to some implementations.

FIG. 6 is a block diagram illustrating an exemplary computer system,according to some implementations.

DETAILED DESCRIPTION

Implementations are described for in-context control of feed privacysettings. A content sharing platform can include one or more channelsthat are viewable over the Internet. A channel is a mechanism forproviding certain media items and/or for providing access to media itemsto subscribers. Media items for the channel can be selected by a user,uploaded by a user, selected by a content provider, or selected by abroadcaster. In one implementation, at least a portion of the users ofthe content sharing platform have a channel, which can be used tobroadcast, notify, or otherwise make available, media items andactivities associated with the user to other users of the contentsharing platform. Users can subscribe to one or more channels, and uponsubscribing, the user can view his or her subscriptions from thehomepage of the content hosting site or from a user interface. In somecases, in which a user is a curator of one or more channels (e.g., onewho performs management actions on the channel, such as adding mediaitems to the channel, removing media items from the channel, definingsubscription requirements for the channel, defining presentationattributes for channel content, defining access attributes for channelcontent, etc.), activities performed by the user are displayed on theactivity feeds of their subscribers. The user may wish to control whatactivities are displayed on the activity feeds of their subscribers. Forexample, the user may wish for other users (e.g., subscribers to theuser's channel) to be made aware of certain activities, such as when theuser “likes” a video, or subscribes to a certain channel. There may beother activities, however, that the user wishes would remain private,such as when the user uploads a media item or adds a video to aplaylist.

Rather than have the user go through a potentially complicated settingsmenu to individually set the privacy controls for each type of activity,in one implementation, a feed privacy module provides in-context controlof feed privacy settings. The control is said to be “in-context”because, for example if a user performs a certain activity, such asuploading a video, in the normal course of using the content sharingplatform, at that time, the feed privacy module may display a dialogwindow to request input pertaining to a privacy setting selection fromthe user for activities of the same type as the activity which the userjust performed. Thus, when the feed privacy module receives anindication of the occurrence of the activity (e.g., uploading a video),the feed privacy module may create a private feed item corresponding tothe occurrence of the activity. The feed item may include the name ofthe user's channel, the name of the video that was uploaded, adescription of the video, an icon (e.g., a frame or screencap of thevideo), or other information. The feed item is not displayed to otherusers, however, because the feed item is initially created as a privatefeed item.

The feed privacy module may display a dialog window to the user, orotherwise request input pertaining to a privacy setting selection foractivities of the same type as the activity which the user justperformed (e.g., the current video upload and all or a portion of futurevideo uploads by the user). The user may select whether to make the feeditems associated with this activity public (e.g., subscribers to theuser's channel will be notified) or private (e.g., the subscribers willnot be notified). Depending on the received privacy setting selection,the feed privacy module can either maintain the created feed item asprivate or convert the feed item to a public feed item.

In other implementations, the feed privacy module may also determinewhether a privacy setting selection for feed items of the same feed itemtype has been previously received. If a privacy setting selection forfeed items of the same feed item type has been previous received, andthe privacy setting selection indicates a private setting for feed itemsof the same feed item type, the feed privacy module can optionallydetermine whether a threshold period of time (e.g., 30 days) has passedsince the privacy setting selection was received. If the thresholdperiod of time has passed since the privacy setting selection wasreceived, the feed privacy module may redisplay the dialog window orotherwise request an update to the privacy setting selection for feeditems of the same feed item type.

The in-context control of feed privacy settings allows a user to easilycontrol what information is made publically available on a contentsharing platform. The user does not have to navigate potentiallycomplicated settings menus to adjust privacy settings for activitiesthey may not understand. By linking the control of the privacy settingsto the occurrence of the actual activity, the user is much more likelyto understand the implications of particular settings (e.g., public orprivate for this activity). The user is also more likely to completeset-up of the privacy settings if they need only set one setting at atime. Since the control of privacy settings is removed from the log-inor sign-up process, the user is also more likely to complete theregistration or log-in.

FIG. 1 is a block diagram illustrating an example graphical userinterface (GUI) 100 in accordance with one implementation of the presentdisclosure. In one implementation, the GUI 100 may be a homepage of auser of a content sharing platform. For example, the GUI 100 may bepresented by and/or displayed within a web browser when the useraccesses the content sharing platform via the web browser. In anotherimplementation, the GUI 100 may be a home interface or a main interfacepresented by a media viewer (e.g., an app, an application, a program, asoftware module/component, etc., that may be used to view, play, and/orconsume media items). Although the GUI 100 is illustrated using buttons(e.g., buttons 105, 110, 115, etc.), other embodiments may use linksand/or other graphical user interface controls or elements in place ofone or more of the buttons.

In one implementation, the GUI 100 includes buttons 105 and 110. Button105 may allow the user to view a history of the media items that theuser has consumed (e.g., viewed or played). For example, when the userselects and/or activates the button 105, a new GUI that includes a listof the last (e.g., ten, twenty, fifty or hundred) media items viewed bythe user may be presented to the user. The button 110 may allow a userto view different playlists of media items that the user has previouslycreated and/or obtained. A playlist may be a list and/or an order ofdifferent media items that can be presented (or played) in sequential orshuffled order without interaction from the user. A media viewer (e.g.,a media viewer application and/or a web browser) may play the mediaitems on a playlist in the order in which the media items are listed onthe playlist. A user may also transition between media items on aplaylist. For example, a user may play the next media item on theplaylist or may select a particular media item in the playlist.

In one implementation, the GUI also includes a subscriptions section 111that includes a list of one or more channels to which the user iscurrently subscribed. In one implementation, the subscriptions section111 may include a list of all channels to which the user is subscribed.In another implementation, the subscriptions section 111 may include asubset of channels to which the user is subscribed. For example, thesubscriptions section 111 may present a predefined number of channels(e.g., 5 channels), the channels that the user accesses most frequently,the channels that the user has accessed most recently, the channels thatthe user has most recently subscribed to, etc. Other embodiments ofdetermining the channels to include in a subset of channels displayedcan be used without departing from the scope of the disclosure. Asillustrated in FIG. 1, the subscriptions section 111 includes buttons115, 120, 125, 130, 135 and 140. Button 115 is labeled “Channel A” toindicate that that user is subscribed to Channel A, button 120 islabeled “Channel B” to indicate that that user is subscribed to ChannelB, button 125 is labeled “Channel C” to indicate that that user issubscribed to Channel C, button 130 is labeled “Channel D” to indicatethat that user is subscribed to Channel D, button 135 is labeled“Channel E” to indicate that that user is subscribed to Channel E, andbutton 140 is labeled “Channel F” to indicate that that user issubscribed to Channel F. In one implementation, a list of media items ina channel may be presented to the user when the user activates acorresponding button for the channel. For example, if the user activates(e.g., clicks on or selects) button 135, the GUI 100 may display a listof videos that are in Channel E. In one implementation, when a useractivates (e.g., clicks, selects, etc.) one of the buttons 115 through140, a menu may appear on the GUI 100 listing media items associatedwith the channel associated with the activated button. In anotherimplementation, when a user activates one of the buttons 115 through140, a popup window including a graphic representation (e.g., picture ofa single frame from the media item) of media items in the channelassociated with the activated button may appear on the GUI 100. Forexample, media items from the channels may be displayed on the activityfeed 150, as discussed further below. It should be understood that inother embodiments, other visual indicators such as graphicrepresentations, and/or text can be presented to a user to providechannels to the user.

The content sharing platform may collect demographic informationpertaining to groups of users (e.g., age of user groups, geography ofuser groups, such as country, state, city) and may store the informationin one or more data stores (e.g., hard disks, memories, databases,etc.). In situations in which the embodiments discussed herein collectpersonal information and/or demographic information about users, or maymake use of personal information and/or demographic information, theuser may be provided with an opportunity to control whether programs orfeatures collect entity information (e.g., information about a user'ssocial network, social actions or activities, profession, a user'spreferences, or a user's current location), or to control whether and/orhow to receive content from the content sharing platform that may bemore relevant to the user. In addition, certain data may be treated inone or more ways before it is stored or used, so that personallyidentifiable information is removed. For example, a user's identity maybe treated so that no personally identifiable information can bedetermined for the user, or an user's geographic location may begeneralized where location information is obtained (such as to a city,ZIP code, or state), so that a particular location of a user cannot bedetermined. Thus, the user may have control over how information iscollected about the user and used by the content sharing platform.

The activity feed 150 can include information about activitiesassociated with channels to which the user is subscribed. In oneimplementation, the activity feed 150 can include information about themost recent activities associated with each channel (e.g., media itemsuploaded to the channel, media items “liked” by the channel, otherchannels to which the channel has subscribed, playlists created by thechannel), as well as a mechanism for the user to perform an action forthat activity (e.g., providing a frame, image, and/or icon of thedigital content uploaded to the channel that serves as a link to thedigital content). If the user uses the activity feed 150 to perform anaction, that action can be associated with the channel which performedthe activity. In one implementation, the activity feed 150 may be acombined or syndicated activity feed that includes activities associatedwith multiple channels to which the user is subscribed.

As illustrated in FIG. 1, the activity feed 150 includes feed items 160,165, 170, 175, and 180. Each feed item may include information about theactivity, the title of an associated media item, a description of themedia item, and an icon for the media item. For example, the feed item160 includes information indicating that a curator of channel A hasuploaded a video (e.g., “Channel A uploaded a video”), includes thetitle of the video (e.g., Cat Video), a description of the video (e.g.,“This is a cat video”), and an icon 161. An icon (e.g., icon 161) may betext, a thumbnail, an image, a frame, and/or some other graphic used torepresent the media item for the feed item 160. Icons 166, 171, 176, and181 are used to represent the media items (e.g., videos) associated withfeed items 165, 170, 175, and 180 respectively. Although a list ofvideos are shown as being included in the activity feed 150, it shouldbe understood that in other embodiments, other activity feed informationmay be shown in the GUI 100. For example, an image (e.g., a JPEG) may beshown in the GUI 100. In another example, digital music (e.g., an MP3)may be played in the GUI 100. In yet another example, social mediainformation (e.g., a tweet, a like, etc.) may be shown in the GUI 100.In one implementation, when a user is unsubscribed from a channel, mediaitems from the channel may be removed from the activity feed of theuser. For example, when a user is unsubscribed from channel C, feed item170 may be removed from the activity feed 150.

The additional feed items in activity feed 150 may be associated withthe same or different types of activities. For example, the feed item165 includes information indicating that a curator of channel D hasapproved of a video (“Channel D liked a video”), includes the title ofthe video (e.g., Another Cat Video), a description of the video (e.g.,“This is another cat video”), and icon 166. Feed item 170 includesinformation indicating that a curator of channel C has added a video toa playlist (e.g., “Channel C added a video to a playlist”), includes thetitle of the video (e.g., Funny Video), a description of the video(e.g., “This is a funny video”), and icon 171. Feed item 175 includesinformation indicating that a curator of channel F has designated avideo as favorite (e.g., “Channel F made a video a favorite”), includesthe title of the video (e.g., Funnier Video), a description of the video(e.g., “This is a funnier video”), and icon 176. Feed item 180 includesinformation indicating that a curator of channel E has subscribed to achannel (e.g., “Channel E subscribed to a channel”), includes the nameof the channel to which Channel E subscribed (e.g., Channel B), adescription of the channel (e.g., “We have lots of funny videos”), andicon 181.

In one implementation, the feed items 160-180 in activity feed 150 areall public feed items. They are displayed in activity feed 150 becausethe user (e.g., curators of each of the corresponding channels (e.g.,Channels A-F)) elected to make feed items of each particular feed itemtype public and visible to subscribers of the channels. Had instead, theuser or curator of one or more of Channels A-F elected to make a certaintype of feed item private, feed items of that type would not be visiblein activity feed 150. In one implementation, the users or curators ofChannels A-F may use the in-context feed privacy setting controltechniques described herein to control the privacy settings with respectto which feed items are visible in the activity feeds (e.g., activityfeed 150) of their subscribers. In one implementation, the feed itemsmay be semi-private. Semi-private feed items may be made available to acertain subset of users, such as other users with which the user orchannel curator has a certain connection with (e.g., a “friend” or partof a “circle”) or particular other users that the user or channelcurators specifies. Additional details of in-context control of feedprivacy settings are provided below.

FIG. 2 is a block diagram illustrating an exemplary network architecture200 in which implementations of the present disclosure may beimplemented. In one implementation, the network architecture 200includes client devices 210A through 210Z, a network 205, a data store206, a content sharing platform 220, a server 230, a social connectionplatform 240, an email platform 250, and a search platform 260. In oneimplementation, network 205 may include a public network (e.g., theInternet), a private network (e.g., a local area network (LAN) or widearea network (WAN)), a wired network (e.g., Ethernet network), awireless network (e.g., an 802.11 network or a Wi-Fi network), acellular network (e.g., a Long Term Evolution (LTE) network), routers,hubs, switches, server computers, and/or a combination thereof. In oneimplementation, the data store 206 may be may be a memory (e.g., randomaccess memory), a cache, a drive (e.g., a hard drive), a flash drive, adatabase system, or another type of component or device capable ofstoring data. The data store 206 may also include multiple storagecomponents (e.g., multiple drives or multiple databases) that may alsospan multiple computing devices (e.g., multiple server computers).

The client devices 210A through 210Z may each include computing devicessuch as personal computers (PCs), laptops, mobile phones, smart phones,tablet computers, netbook computers, etc. Each client device may includea media viewer 211. In one implementation, the media viewer 211 may bean application that allows users to view content, such as images,videos, web pages, documents, etc. For example, the media viewer 211 maybe a web browser that can access, retrieve, present, and/or navigatecontent (e.g., web pages such as Hyper Text Markup Language (HTML)pages, digital media items, etc.) served by a web server. The mediaviewer 211 may render, display, and/or present the content (e.g., a webpage, a media viewer) to a user. The media viewer 211 may also displayan embedded media player (e.g., a Flash® player or an HTML5 player) thatis embedded in a web page (e.g., a web page that may provide informationabout a product sold by an online merchant). In another example, themedia viewer 211 may be a standalone application that allows users toview digital media items (e.g., digital videos, digital images,electronic books). The media viewer 211 may be provided to the clientdevices 210A through 210Z by the server 230 and/or content sharingplatform 220. For example, the media viewer 211 may be an embedded mediaplayer that is embedded in a web page provided by the content sharingplatform 220. In another example, the media viewer 211 may be anapplication that is downloaded from the server 230.

In one implementation, content sharing platform 220 may include one ormore computing devices (such as a rack mount server, a router computer,a server computer, a personal computer, a mainframe computer, a laptopcomputer, a tablet computer, a desktop computer, etc.), data stores(e.g., hard disks, memories, databases), networks, software components,and/or hardware components that may be used to provide a user withaccess to media items and/or provide the media items to the user. Forexample, the content sharing platform 220 may allow a user to consume,upload, search for, approve of (“like”), dislike, and/or comment onmedia items. The content sharing platform 220 may also include a website(e.g., a webpage) that may be used to provide a user with access to themedia items. The content sharing platform 220 may include multiplechannels (e.g., channels A through Z). Each channel may include one ormore media items 221. Examples of a media item 221 can include, and arenot limited to, digital videos, digital movies, digital photos, digitalmusic, website content, social media updates, electronic books (ebooks),electronic magazines, digital newspapers, digital audio books,electronic journals, web blogs, real simple syndication (RSS) feeds,electronic comic books, software applications, and the like. A mediaitem 221 may be consumed via the Internet and/or via a mobile deviceapplication. For brevity and simplicity, an online video (alsohereinafter referred to as a video) is used as an example of a mediaitem throughout this document. As used herein, “media,” media items,”“online media items,” “digital media,” and “digital media items” caninclude an electronic file that can be executed or loaded usingsoftware, firmware or hardware configured to present the digital mediaitem to an entity. In one implementation, the content sharing platform220 may store the media items using the data store 206.

Social connection platform 240 may include one or more computing devices(e.g., servers), data stores, networks, software components, and/orhardware components that may be used to allow users to connect to, shareinformation, and/or interact with each other. Social connection platform240 may present to a user a listing (e.g., activity feed, feed, stream,wall, etc.) of objects (such as posts, content items (e.g., video,images, audio, etc.), status updates, favorability indications, tags,messages, and so on) generated by other users of a social network.Social connection platform 240 may also include a content sharing aspectthat allows users to upload, view, tag, and share content, such as textcontent, video content, image content, audio content, and so on. Otherusers of social connection platform 240 may comment on the sharedcontent, discover new content, locate updates, share content, andotherwise interact with the provided content. In one implementation,content sharing platform 220 may be integrated with social connectionplatform 240. For example, social connection platform 240 may usecontent sharing platform 220 to allow users to upload and/or sharecontent. In another implementation, social connection platform 240 maybe separate from content sharing platform 220. In one implementation,social connection platform 240 may also include chat functionality(e.g., a chat platform) to allow users to chat (e.g., to instantmessage) each other.

In one implementation, email platform 250 may be one or more computingdevices (e.g., servers), data stores, networks, software components,and/or hardware components that may be used to allow users to sendand/or receive electronic-mail (emails) to each other. For example, afirst user may use the email platform 250 to send an email to a seconduser regarding the time and location of a particular event. The firstuser may also attached files (e.g., video files, image files, textfiles, etc.) to the email. In one implementation, the email platform 250may also include chat functionality (e.g., a chat platform) to allowusers to chat (e.g., to instant message) each other. In anotherimplementation, the search platform 260 may be one or more computingdevices, data stores, networks, software components, and/or hardwarecomponents that may be used to allow users to search for informationand/or data. For example, the search platform 260 may allow a user tosearch the Internet and/or other networks for articles, blogs, websites,webpages, images, videos, and/or other content related to a particulartopic (e.g., how to fix a car). The search platform 260 may also includea search engine.

In one implementation, server 230 may include one or more computingdevices (e.g., a rack mount server, a server computer, etc. In oneimplementation, server 230 may be included in one or more of contentsharing platform 220, social connection platform 240, email platform250, and search platform 260. In another implementation, server 230 maybe separate from content sharing platform 220, social connectionplatform 240, email platform 250, and search platform 260 but maycommunicate (e.g., exchange data with) content sharing platform 220,social connection platform 240, email platform 250, and search platform260. In one implementation, server 230 includes a feed privacy module235. Feed privacy module 235 may allow a user of the content sharingplatform 220 to perform in-context control of feed privacy settings forfeed items. Additional details of feed privacy module 235 are providedbelow.

FIG. 3 is a block diagram illustrating a feed privacy module 235 forin-context control of feed privacy settings, according to animplementation. In one implementation, feed privacy module 235 includesmedia viewer interface 302, feed item generator 304 and privacy settingcontroller 306. This arrangement of modules and components may be alogical separation, and in other implementations, these modules or othercomponents can be combined together or separated in further components,according to a particular implementation. In one implementation, datastore 206 is connected to feed privacy module 235 and includes activityfeed items 342, privacy flags 344, privacy setting selection flags 346and dialog window data 348. In one implementation, server 230 mayinclude both feed privacy module 235 and data store 206. In anotherimplementation, data store 206 may be external to server 230 and may beconnected to server 230 over a network or other connection. In otherimplementations, server 230 may include different and/or additionalcomponents which are not shown to simplify the description. Data store206 may include one or more mass storage devices which can include, forexample, flash memory, magnetic or optical disks, or tape drives;read-only memory (ROM); random-access memory (RAM); erasableprogrammable memory (e.g., EPROM and EEPROM); flash memory; or any othertype of storage medium.

In one implementation, media viewer interface 302 generates and/orcontrols interactions with a user interface, such as GUI 100, that ispart of a website or application (e.g., mobile application or app), suchas media viewer 211, running on a client device 210A-210Z. For example,media viewer interface 302 may provide feed items, such as feed items160-180 to be displayed in the activity feed 150 in GUI 100. Mediaviewer interface may also receive indications of performed activitiesfrom media viewer 211. For example, if the user performs an activity,such as “liking” a video, uploading a video, adding a video to aplaylist, subscribing to a channel, etc., media viewer 211 may providean indication of the occurrence of that activity to feed privacy module235. In one implementation, the indication may include an AsynchronousJavaScript and XML (AJAX) call from media viewer 211 to feed privacymodule 235. Media viewer interface 302 may receive the indication of theoccurrence of the activity.

In one implementation, feed item generator 304 may generate an activityfeed item in response to the indication of the occurrence of an activitybeing received. Media viewer interface 302 may notify feed itemgenerator 304 that an indication of an occurrence of an activity wasreceived and, in response, feed item generator 304 may generate anactivity feed item. In one implementation, the feed item may includeinformation about the activity, the title of an associated media item, adescription of the media item, an icon representing the media item,and/or other information. The feed item may be suitable for display inother users' activity feeds to notify those other users of theoccurrence of the activity. In one implementation, feed item generator304 may initially create the feed item as a private feed item, which isnot shared with other users of the content sharing platform 220. Inanother implementation, feed item generator 304 creates the feed item asa public feed item, which is shared with the other users. In oneimplementation, whether a public or private feed item, feed itemgenerator 304 may store a copy of the feed item in activity feed items342 in data store 206.

In one implementation, privacy setting controller 306 manages theprivacy settings for the feed items in activity feed items 342. Forexample, privacy setting controller 306 may maintain privacy flags 344and privacy setting selection flags 346 in data store 206. In oneimplementation, privacy flags 344 may include one or more flags (e.g., asingle bit) for each type of activity defined in the content sharingplatform 220 to indicate whether feed items associated with thatactivity should be made public or private for the current user. Forexample, one of privacy flags 344 may have a value of “1” to indicate atrue condition (i.e., that feed items for the corresponding activitytype should be made private) or “0” to indicate a false condition (i.e.,that feed items for the corresponding activity type should be madepublic). In other implementations, the values may be reversed, or someother value besides a single bit may be used. In one implementation,privacy flags 344 include a flag for each of “liking” a media item,uploading a media item, adding a media item to a playlist, andsubscribing to a channel. In other implementations, privacy flags 344may include flags for additional and/or different activity types. In oneimplementation, all of privacy flags 344 are initially set to “private”by default. In other implementations, one or more of privacy flags 344may have some other default setting (e.g., public).

In one implementation, upon the creation of a feed item by feed itemgenerator 304, privacy setting controller 306 instructs media viewerinterface 302 to display a dialog window in GUI 100 to request a privacysetting selection for the type of activity corresponding to the feeditem. The dialog window may include a description of the activity type,an indication of what will result from selection private or public(i.e., that feed items for activities of this same type will be madevisible to other users in the future) and/or a means for receiving theprivacy setting selection. For example, the dialog window may includebuttons, check boxes, radio buttons, a pull-down menu, a text inputfield, or other means for the user to select either “public” or“private.” In other implementations, rather than a dialog window, mediaviewer interface 302 may display a pop-up window, inline text, or otherform of request for the input pertaining to the privacy settingselection. In other implementations there may be additional and/ordifferent privacy settings available for selection. Media viewerinterface 302 receives the privacy setting selection and notifiesprivacy setting controller 306. In turn, privacy setting controller 306instructs feed item generator 304 to either maintain the feed item asprivate or convert the feed item to a public feed item, as appropriate.Privacy setting controller 306 may also set the corresponding flag inprivacy flags 344 based on the received privacy setting selection.

In one implementation, privacy setting selection flags 346 indicatewhether a dialog box has been displayed and a privacy setting selectionreceived for a particular type of activity. For example, one of privacysetting selection flags 346 may have a value of “1” to indicate a truecondition (i.e., that the dialog box was previously displayed a privacysetting selection was received) or “0” to indicate a false condition(i.e., that the dialog box has not been displayed or a privacy settingselection has not been received). In other implementations, the valuesmay be reversed, or some other value besides a single bit may be used.In one implementation, privacy setting selection flags 346 include aflag for each of “liking” a media item, uploading a media item, adding amedia item to a playlist, and subscribing to a channel. In otherimplementations, privacy setting selection flags 346 may include flagsfor additional and/or different activity types. In one implementation,all of privacy setting selection flags 346 are initially set to “false”by default.

In one implementation, upon receiving the notification of the occurrenceof an activity from media viewer interface 302, privacy settingcontroller 306 may consult privacy setting selection flags 346 todetermine whether the flag corresponding to the activity type is set to“false.” If the flag is set to false, privacy setting controller 306 mayinstruct media viewer interface 302 to display a dialog window in GUI100 to request a privacy setting selection for the type of activitycorresponding to the feed item, as discussed above. If, however, theflag is set to true, in one implementation, privacy setting controller306 may consult privacy flags 344 to determine whether the previouslyreceived privacy control setting was “public” or “private.” If the flagcorresponding to the activity type in privacy flags 344 indicates thatthe feed item should be made public, privacy setting controller 306instructs feed item generator 304 to convert the feed item in activityfeed items 342 to a public feed item. If the flag corresponding to theactivity type in privacy flags 344 indicates that the feed item shouldbe made private, privacy setting controller 306 may consult dialogwindow data 348. Dialog window data 348 may store time informationrelated to various dialog windows. For example, dialog window data 348may store an indication of when a dialog window for a certain activitytype was last displayed in GUI 100 or when a privacy setting selectionfor the activity type was received. Dialog window data 348 may alsoinclude a threshold time value (e.g., 30 days). In one implementation,privacy setting controller 306 may compare the time value stored indialog window data 348 associated with the activity type with thethreshold time value. If the time value is within the threshold value(i.e., the difference between the time value and a current time is lessthan or equal to the threshold value), privacy setting controller 306may instruct the feed item generator 304 to maintain the feed item as aprivate feed item. If however, the threshold period of time has passedsince the privacy setting selection was received, privacy settingcontroller 306 may instruct media viewer interface 302 to re-display thedialog window to receive an update to the privacy setting selection.

FIG. 4 is a flow diagram illustrating a method for in-context feedprivacy control, according to some implementations. The method 400 maybe performed by processing logic that comprises hardware (e.g.,circuitry, dedicated logic, programmable logic, microcode, etc.),software (e.g., instructions run on a processing device to performhardware simulation), or a combination thereof. The method 400 canmanage privacy settings for feed items associated with certainactivities in a content sharing platform as the activities occur. Forsimplicity of explanation, the methods of this disclosure are depictedand described as a series of acts. However, acts in accordance with thisdisclosure can occur in various orders and/or concurrently, and withother acts not presented and described herein. Furthermore, not allillustrated acts may be required to implement the methods in accordancewith the disclosed subject matter. In addition, those skilled in the artwill understand and appreciate that the methods could alternatively berepresented as a series of interrelated states via a state diagram orevents. Additionally, it should be appreciated that the methodsdisclosed in this specification are capable of being stored on anarticle of manufacture to facilitate transporting and transferring suchmethods to computing devices. The term “article of manufacture,” as usedherein, is intended to encompass a computer program accessible from anycomputer-readable device or storage media. In one implementation, method400 may be performed by feed privacy module 235, as shown in FIGS. 2 and3.

Referring to FIG. 4, at block 410, method 400 receives an indication ofthe occurrence of an activity. For example, if the user performs anactivity, such as “liking” a video, uploading a video, adding a video toa playlist, subscribing to a channel, etc., media viewer 211 may providean indication of the occurrence of that activity to feed privacy module235. In one implementation, the indication may include an AsynchronousJavaScript and XML (AJAX) call from media viewer 211 to feed privacymodule 235. Media viewer interface 302 may receive the indication of theoccurrence of the activity.

At block 420, method 400 creates a private feed item corresponding tothe occurrence of the activity. In one implementation, feed itemgenerator 304 may generate an activity feed item in response to theindication of the occurrence of an activity being received. Media viewerinterface 302 may notify feed item generator 304 that an indication ofan occurrence of an activity was received and, in response, feed itemgenerator 304 may generate an activity feed item. In one implementation,the feed item may include information about the activity, the title ofan associated media item, a description of the media item, an iconrepresenting the media item, and/or other information. The feed item maybe suitable for display in other users' activity feeds to notify thoseother users of the occurrence of the activity. In one implementation,feed item generator 304 may initially create the feed item as a privatefeed item, which is not shared with other users of the content sharingplatform 220.

At block 430, method 400 displays a dialog window to request a privacysetting selection. In one implementation, privacy setting controller 306instructs media viewer interface 302 to display a dialog window in GUI100 to request a privacy setting selection for the type of activitycorresponding to the feed item. The dialog window may include adescription of the activity type, an indication of what will result fromselection private or public (i.e., that feed items for activities ofthis same type will be made visible to other users in the future) and/ora means for receiving the privacy setting selection. For example, thedialog window may include buttons, check boxes, radio buttons, apull-down menu, a text input field, or other means for the user toselect either “public” or “private.” In other implementations there maybe additional and/or different privacy settings available for selection.

At block 440, method 400 receives a privacy setting selection. In oneimplementation, media viewer interface 302 receives the privacy settingselection and notifies privacy setting controller 306. At block 450,method 400 determines whether the privacy setting selection indicates tomake feed items for the type of activity public. If the privacy settingselection does not indicates to make the feed items public, at block470, method 400 maintains the feed item as a private feed item. If theprivacy setting selection does indicate to make the feed item public, atblock 460, method 400 converts the private feed item to a public feeditem. In one implementation, privacy setting controller 306 instructsfeed item generator 304 to either maintain the feed item as private orconvert the feed item to a public feed item, as appropriate. Privacysetting controller 306 may also set the corresponding flag in privacyflags 344 based on the received privacy setting selection.

FIG. 5 is a flow diagram illustrating a method for in-context feedprivacy control, according to some implementations. The method 500 maybe performed by processing logic that comprises hardware (e.g.,circuitry, dedicated logic, programmable logic, microcode, etc.),software (e.g., instructions run on a processing device to performhardware simulation), or a combination thereof. The method 500 canmanage privacy settings for feed items associated with certainactivities in a content sharing platform as the activities occur. In oneimplementation, method 500 may be performed by feed privacy module 235,as shown in FIGS. 2 and 3.

Referring to FIG. 5, at block 510, method 500 receives an indication ofthe occurrence of an activity. At block 520, method 500 creates aprivate feed item corresponding to the occurrence of the activity.

At block 530, method 500 determines whether a privacy setting selectionhas previously been received for the type of activity that occurred. Inone implementation, upon receiving the notification of the occurrence ofan activity from media viewer interface 302, privacy setting controller306 may consult privacy setting selection flags 346 to determine whetherthe flag corresponding to the activity type is set to “false.” If theflag is set to false, indicating that no privacy setting selection hasbeen received, at block 540, method 500 may display the dialog window torequest a privacy setting selection. Privacy setting controller 306 mayinstruct media viewer interface 302 to display a dialog window in GUI100 to request a privacy setting selection for the type of activitycorresponding to the feed item, as discussed above. At block 550, method500 receives a privacy setting selection. If, however, the flag is setto true, indicating that a privacy setting selection has previously beenreceived, at block 560, method 500 determines whether the privacysetting selection indicates to make the feed items for that activitytype public. In one implementation, privacy setting controller 306 mayconsult privacy flags 344 to determine whether the previously receivedprivacy control setting was “public” or “private.”

If the privacy setting selection does indicate to make the feed itemspublic, at block 570, method 500 converts the feed item to a public feeditem. If the flag corresponding to the activity type in privacy flags344 indicates that the feed item should be made public, privacy settingcontroller 306 instructs feed item generator 304 to convert the feeditem in activity feed items 342 to a public feed item. If the privacysetting selection does not indicate to make the feed item public, atblock 580, method 500 optionally determines whether a threshold periodof time has passed since the privacy setting selection was received. Ifthe flag corresponding to the activity type in privacy flags 344indicates that the feed item should be made private, privacy settingcontroller 306 may consult dialog window data 348. Dialog window data348 may store time information related to various dialog windows. Forexample, dialog window data 348 may store an indication of when a dialogwindow for a certain activity type was last displayed in GUI 100 or whena privacy setting selection for the activity type was received. Dialogwindow data 348 may also include a threshold time value (e.g., 30 days).In one implementation, privacy setting controller 306 may compare thetime value stored in dialog window data 348 associated with the activitytype with the threshold time value. If the time value is within thethreshold value (i.e., the difference between the time value and acurrent time is less than or equal to the threshold value), at block590, method 500 maintains the feed item as a private feed item. In oneimplementation, privacy setting controller 306 may instruct the feeditem generator 304 to maintain the feed item as a private feed item. Ifhowever, the threshold period of time has passed since the privacysetting selection was received, method 500 may return to block 540. Inone implementation, privacy setting controller 306 may instruct mediaviewer interface 302 to re-display the dialog window or otherwiserequest an update to the privacy setting selection. Method 500 may thenrepeat the operations in blocks 540-590, as appropriate.

FIG. 6 illustrates a diagrammatic representation of a machine in theexemplary form of a computer system 600 within which a set ofinstructions, for causing the machine to perform any one or more of themethodologies discussed herein, may be executed. In alternativeimplementations, the machine may be connected (e.g., networked) to othermachines in a local area network (LAN), an intranet, an extranet, or theInternet. The machine may operate in the capacity of a server or aclient machine in a client-server network environment, or as a peermachine in a peer-to-peer (or distributed) network environment. Themachine may be a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a server, a network router, switch or bridge, or any machinecapable of executing a set of instructions (sequential or otherwise)that specify actions to be taken by that machine. Further, while only asingle machine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein. In one implementation, computersystem 600 may be representative of a user device, such as clientdevices 210A-210Z, or of a server, such as server 230, running feedprivacy module 235.

The exemplary computer system 600 includes a processing device 602, amain memory 604 (e.g., read-only memory (ROM), flash memory, dynamicrandom access memory (DRAM) (such as synchronous DRAM (SDRAM) or RambusDRAM (RDRAM), etc.), a static memory 606 (e.g., flash memory, staticrandom access memory (SRAM), etc.), and a data storage device 618, whichcommunicate with each other via a bus 630. Any of the signals providedover various buses described herein may be time multiplexed with othersignals and provided over one or more common buses. Additionally, theinterconnection between circuit components or blocks may be shown asbuses or as single signal lines. Each of the buses may alternatively beone or more single signal lines and each of the single signal lines mayalternatively be buses.

Processing device 602 represents one or more general-purpose processingdevices such as a microprocessor, central processing unit, or the like.More particularly, the processing device may be complex instruction setcomputing (CISC) microprocessor, reduced instruction set computer (RISC)microprocessor, very long instruction word (VLIW) microprocessor, orprocessor implementing other instruction sets, or processorsimplementing a combination of instruction sets. Processing device 602may also be one or more special-purpose processing devices such as anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA), a digital signal processor (DSP), network processor,or the like. The processing device 602 is configured to executeprocessing logic 626 for performing the operations and steps discussedherein.

The computer system 600 may further include a network interface device608. The computer system 600 also may include a video display unit 610(e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), analphanumeric input device 612 (e.g., a keyboard), a cursor controldevice 614 (e.g., a mouse), and a signal generation device 616 (e.g., aspeaker).

The data storage device 618 may include a machine-readable storagemedium 628, on which is stored one or more set of instructions 622(e.g., software) embodying any one or more of the methodologies offunctions described herein. The instructions 622 may also reside,completely or at least partially, within the main memory 604 and/orwithin the processing device 602 during execution thereof by thecomputer system 600; the main memory 604 and the processing device 602also constituting machine-readable storage media. The instructions 622may further be transmitted or received over a network 620 via thenetwork interface device 608.

The machine-readable storage medium 628 may also be used to storeinstructions to perform a method for in-context control of feed privacysettings, as described herein. While the machine-readable storage medium628 is shown in an exemplary implementation to be a single medium, theterm “machine-readable storage medium” should be taken to include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore sets of instructions. A machine-readable medium includes anymechanism for storing information in a form (e.g., software, processingapplication) readable by a machine (e.g., a computer). Themachine-readable medium may include, but is not limited to, magneticstorage medium (e.g., floppy diskette); optical storage medium (e.g.,CD-ROM); magneto-optical storage medium; read-only memory (ROM);random-access memory (RAM); erasable programmable memory (e.g., EPROMand EEPROM); flash memory; or another type of medium suitable forstoring electronic instructions.

The preceding description sets forth numerous specific details such asexamples of specific systems, components, methods, and so forth, inorder to provide a good understanding of several implementations of thepresent disclosure. It will be apparent to one skilled in the art,however, that at least some implementations of the present disclosuremay be practiced without these specific details. In other instances,well-known components or methods are not described in detail or arepresented in simple block diagram format in order to avoid unnecessarilyobscuring the present disclosure. Thus, the specific details set forthare merely exemplary. Particular implementations may vary from theseexemplary details and still be contemplated to be within the scope ofthe present disclosure.

In situations in which the systems discussed herein collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether programs orfeatures collect user information (e.g., information about a user'ssocial network, social actions or activities, profession, a user'spreferences, or a user's current location), or to control whether and/orhow to receive content from the media server that may be more relevantto the user. In addition, certain data may be treated in one or moreways before it is stored or used, so that personally identifiableinformation is removed. For example, a user's identity may be treated sothat no personally identifiable information can be determined for theuser, or a user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over how information is collected about the userand used by the web server or media server.

Reference throughout this specification to “one implementation” or “animplementation” means that a particular feature, structure, orcharacteristic described in connection with the implementations includedin at least one implementation. Thus, the appearances of the phrase “inone implementation” or “in an implementation” in various placesthroughout this specification are not necessarily all referring to thesame implementation. In addition, the term “or” is intended to mean aninclusive “or” rather than an exclusive “or.”

Although the operations of the methods herein are shown and described ina particular order, the order of the operations of each method may bealtered so that certain operations may be performed in an inverse orderor so that certain operation may be performed, at least in part,concurrently with other operations. In another implementation,instructions or sub-operations of distinct operations may be in anintermittent and/or alternating manner.

What is claimed is:
 1. A method comprising: receiving, by a processingdevice, an indication of an occurrence of an activity in a contentsharing platform, the occurrence of the activity corresponding to a feeditem of a first feed item type; requesting, by the processing device,user input via a user interface that simultaneously displays the feeditem of the first feed item type and a privacy setting selection for thefirst feed item type, wherein the user input pertains to the privacysetting selection; receiving, by the processing device, the privacysetting selection for the first feed item type while the user interfacepresents the feed item; in response to receiving the privacy settingselection, updating, by the processing device, a privacy setting formultiple feed items comprising the feed item and a subsequent feed itemof the first feed item type; setting, by the processing device, thesubsequent feed item of the first feed item type as public in responseto determining the privacy setting indicates a public setting; andmaintaining, by the processing device, the subsequent feed item of thefirst feed item type as private in response to determining the privacysetting indicates a private setting.
 2. The method of claim 1, whereinthe activity comprises at least one of liking an object, subscribing toa content channel, publishing an object, or adding an object to aplaylist.
 3. The method of claim 1, further comprising: determining thatthe privacy setting selection for the first feed item type has beenpreviously received.
 4. The method of claim 3, further comprising: inresponse to determining that the privacy setting selection for the firstfeed item type has been previously received, and that the user inputpertaining to the privacy setting selection indicates a private settingfor the first feed item type, determining that a threshold period oftime has passed since the privacy setting selection was received.
 5. Themethod of claim 4, further comprising: in response to determining thatthe threshold period of time has passed since the privacy settingselection was received, requesting an update to the privacy settingselection for the first feed item type.
 6. The method of claim 1,further comprising: creating, by the processing device, a private feeditem of the first feed item type corresponding to the occurrence of theactivity.
 7. The method of claim 1, wherein the user interface links theoccurrence of the activity corresponding to the feed item with agraphical element to control the privacy setting of a plurality ofsubsequent feed items of the first feed item type.
 8. A non-transitorymachine-readable storage medium storing instructions which, whenexecuted, cause a processing device to perform operations comprising:receiving an indication of an occurrence of an activity in a contentsharing platform, the occurrence of the activity corresponding to a feeditem of a first feed item type; requesting, user input via a userinterface that simultaneously displays the feed item of the first feeditem type and a privacy setting selection for the first feed item type,wherein the user input pertains to the privacy setting selection;receiving the privacy setting selection for the first feed item typewhile the user interface presents the feed item; in response toreceiving the privacy setting selection, updating a privacy setting formultiple feed items comprising the feed item and a subsequent feed itemof the first feed item type; setting the subsequent feed item of thefirst feed item type as public in response to determining the privacysetting indicates a public setting; and maintaining the subsequent feeditem of the first feed item type as private in response to determiningthe privacy setting indicates a private setting.
 9. The non-transitorymachine-readable storage medium of claim 8, wherein the activitycomprises at least one of liking an object, subscribing to a contentchannel, publishing an object, or adding an object to a playlist. 10.The non-transitory machine-readable storage medium of claim 8, whereinthe operations further comprise: determining that the privacy settingselection for the first feed item type has been previously received. 11.The non-transitory machine-readable storage medium of claim 10, whereinthe operations further comprise: in response to determining that theprivacy setting selection for the first feed item type has beenpreviously received, and that the user input pertaining to the privacysetting selection indicates a private setting for the first feed itemtype, determining that a threshold period of time has passed since theprivacy setting selection was received.
 12. The non-transitorymachine-readable storage medium of claim 11, wherein the operationsfurther comprise: in response to determining that the threshold periodof time has passed since the privacy setting selection was received,requesting an update to the privacy setting selection for the first feeditem type.
 13. The non-transitory machine-readable storage medium ofclaim 10, wherein the operations further comprise: creating, by theprocessing device, a private feed item of the first feed item typecorresponding to the occurrence of the activity.
 14. A server computersystem comprising: a memory; a processing device coupled to the memory,wherein the processing device is to: receive an indication of anoccurrence of an activity in a content sharing platform, the occurrenceof the activity corresponding to a feed item of a first feed item type;request, user input via a user interface that simultaneously displaysthe feed item of the first feed item type and a privacy settingselection for the first feed item type, wherein the user input pertainsto the privacy setting selection; receive the privacy setting selectionfor the first feed item type while the user interface presents the feeditem; in response to receiving the privacy setting selection, update theprivacy setting for multiple feed items comprising the feed item and asubsequent feed item of the first feed item type; set the subsequentfeed item of the first feed item type as public in response todetermining the privacy setting indicates a public setting; and maintainthe subsequent feed item of the first feed item type as private inresponse to determining the privacy setting indicates a private setting.15. The server computer system of claim 14, wherein the processingdevice is further to: determine that the privacy setting selection forthe first feed item type has been previously received.
 16. The servercomputer system of claim 15, wherein the processing device is furtherto: determine that a threshold period of time has passed since theprivacy setting selection was received in response to determining thatthe privacy setting selection for the first feed item type has beenpreviously received, and that the user input pertaining to the privacysetting selection indicates a private setting for the first feed itemtype.
 17. The server computer system of claim 16, wherein the processingdevice is further to: request an update to the privacy setting selectionfor the first feed item type in response to determining that thethreshold period of time has passed since the privacy setting selectionwas received.
 18. The server computer system of claim 16, wherein theprocessing device is further to: create a private feed item of the firstfeed item type corresponding to the occurrence of the activity.